package cn.sccdlg.zdy.dao.impl;

import cn.sccdlg.zdy.dao.IUserDao;
import cn.sccdlg.zdy.domain.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import java.util.List;

/**
 * @author RaoShuang
 * @emil 991207823@qq.com
 * @date 2020/10/10 22:45
 * 用户的持久层接口实现
 * 自定义使用mybatis（自定义实现mybatis接口）
 */
public class UserDaoImpl implements IUserDao {
    /**
     * 定义SqlSession工厂
     */
    private SqlSessionFactory factory;

    /**
     * 通过有参传入SqlSessionFactory对象实例化UserDaoImpl类
     * @param factory SqlSession工厂对象
     */
    public UserDaoImpl(SqlSessionFactory  factory){
        this.factory = factory;
    }

    @Override
    public List<User> findAll(){
        //1.使用工厂创建SqlSession对象
        SqlSession session = factory.openSession();
        //2.使用session执行查询所有方法
        List<User> users = session.selectList("cn.sccdlg.zdy.dao.IUserDao.findAll");
        session.close();
        //3.返回查询结果
        return users;
    }
}
